//用户管理模块接口
import request from '@/utils/request'
import type {
  AllRoleResponseData,
  SetRoleData,
  User,
  userResponseData,
} from './type'
//枚举接口地址
enum API {
  //获取全部已有的用户账号信息
  ALLUSER_URL = '/admin/acl/user/',
  //添加新的账户信息
  ADDUSER_URL = '/admin/acl/user/save',
  //修改账户信息
  UPDATEUSER_URL = '/admin/acl/user/update',
  //获取全部职位，以及当前账号拥有的职位接口
  ALLROLEURL_URL = '/admin/acl/user/toAssign/',
  //给已有用户分配角色的接口
  SETROLE_URL = '/admin/acl/user/doAssignRole',
  //删除某一个用户接口
  DELETEUSER_URL = '/admin/acl/user/remove/',
  //批量删除用户的接口
  DELETEALLUSER_URL = '/admin/acl/user/batchRemove',
}

//获取全部用户账户信息接口方法
export const reqUserInfo = (page: number, limit: number, username: string) => {
  request.get<any, userResponseData>(
    API.ALLUSER_URL + `${page}/${limit}/?username=${username}`,
  )
}

//添加和修改账户信息的接口方法
export const reqAddOrUpdateUser = (data: User) => {
  //根据有无id判断发送添加还是修改请求
  if (data.id) {
    return request.put<any, any>(API.UPDATEUSER_URL, data)
  } else {
    return request.put<any, any>(API.ADDUSER_URL, data)
  }
}

//获取全部职位，以及当前账号拥有的职位接口方法
export const reqAllRole = (userId: number) => {
  request.get<any, AllRoleResponseData>(API.ALLROLEURL_URL + userId)
}

//给已有用户分配角色的接口方法
export const reqSetUserRole = (data: SetRoleData) => {
  request.post<any, any>(API.SETROLE_URL, data)
}

//删除某一个用户接口方法
export const reqRemoveUser = (UserId: number) => {
  request.delete<any, any>(API.DELETEUSER_URL + UserId)
}
//批量删除用户的接口方法
export const reqSelectUser = (idList: number[]) => {
  request.delete<any, any>(API.DELETEALLUSER_URL + idList)
}
